package ik.xcj.hostpital.manage.service;

import com.github.pagehelper.PageInfo;
import ik.xcj.hostpital.manage.pojo.dto.ScheduleAddNewDTO;
import ik.xcj.hostpital.manage.pojo.dto.ScheduleUpdateDTO;
import ik.xcj.hostpital.manage.pojo.vo.ScheduleListItemVO;
import ik.xcj.hostpital.manage.pojo.vo.ScheduleStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理医生日程安排数据的业务接口
 *
 * @author ik.xcj
 * @version 0.0.1
 */
@Transactional
public interface IScheduleService {
    /**
     * 插入医生日程安排数据
     *
     * @param scheduleAddNewDTO 医生日程安排数据
     * @return 受影响的行数
     */
    void addNew(ScheduleAddNewDTO scheduleAddNewDTO);

    /**
     * 根据id删除医生日程安排数据
     *
     * @param id 医生日程安排id
     * @return 受影响的行数
     */
    void deleteById(Long id);

    /**
     * 根据id修改医生日程安排数据
     *
     * @param id                医生日程安排id
     * @param scheduleUpdateDTO 新数据的对象
     * @return 受影响的行数
     */
    void update(Long id, ScheduleUpdateDTO scheduleUpdateDTO);

    /**
     * 根据id获取医生日程安排的标准信息
     *
     * @param id 日程安排表的id
     * @return 返回匹配的属性的标准信息，如果没有匹配的数据，将返回null
     */
    ScheduleStandardVO getStandardById(Long id);

    /**
     * 分页查询医生日程安排数据列表
     *
     * @return 医生日程安排数据列表
     */
    PageInfo<ScheduleListItemVO> list(Integer page,Integer pageSize);
}
